package com.ruoyi.web.controller.tool;

import net.jodah.expiringmap.ExpirationPolicy;
import net.jodah.expiringmap.ExpiringMap;

import java.util.concurrent.TimeUnit;

public class ExpiringMapUtil {


    public static ExpiringMap<String,String> expMap=null;


    public static void main(String[] args) throws InterruptedException {
        init();
        expMap.put("ss","2");
        System.out.println(expMap.get("ss"));
//        Thread.sleep(10001);
        String sun = expMap.get("ss");
        System.err.println(sun);
    }


    public static void init(){
/**       1.可设置Map中的Entry在一段时间后自动过期。
          2.可设置Map最大容纳值，当到达Maximum size后，再次插入值会导致Map中的第一个值过期。
          3.可添加监听事件，在监听到Entry过期时调度监听函数。
          4.可以设置懒加载，在调用get()方法时创建对象。
         * ExpirationPolicy.CREATED：在每次更新元素时，过期时间同时清零。
         * *ExpirationPolicy.ACCESSED：在每次访问元素时，过期时间同时清零。 **/
        expMap= ExpiringMap.builder()
                .maxSize(5000)
                .expiration(40, TimeUnit.SECONDS)
                .expirationPolicy(ExpirationPolicy.CREATED)
                .variableExpiration()
                .build();
    }


}
